1. Field of the Invention
The present invention relates generally to an improved data processing system, and in particular, to managing memory in a data processing system. Still more particularly, the present invention relates to a system, and computer usable program code for modeling memory compression in a data processing system.
2. Description of the Related Art
Data processing systems include memory devices for storing, processing, and moving data. A memory device, or memory, is generally a physical component of a data processing system configured to store data. A memory may also include logical or virtual components, such as a space on a hard disk designated to be used as a part of the memory.
A component of the operating system of the data processing system, such as a memory controller, manages the movement of data in and out of the memory, and generally the operation of the memory. Applications and the operating system can use the memory for storing, processing, or moving data they need for their respective functions.
Data processing systems can be configured in a variety of ways. For example, the components in a data processing system may be configured to operate in a manner such that the data processing system behaves as a single data processing unit. The memory in such a configuration operates to support data manipulation for the single data processing unit.
As another example, data processing systems can be divided into logical partitions (LPARs). Such data processing systems are also known as logical partitioned data processing systems. A logical partition is also known simply as a “partition.” Each partition operates as a separate data processing system independent of the other partitions. Generally, a partition management firmware component connects the various partitions and provides the network connectivity among them. A Hypervisor is an example of such partition management firmware.
One or more memory devices may be present in a logical partitioned data processing environment. A partition may access one or more memory devices for manipulating data. Methods exist to address several portions of several memory devices in a manner that the several memory devices appear as a single memory to the applications and the operating system of a partition.
Memory capacity is increasingly becoming a major constraint in modern computing systems. The CPU processing capacity of computer systems is growing at a much faster rate than memory capacity, leading to a smaller ratio of memory to CPU capacity. Thus, memory capacity is increasingly becoming the bottleneck in achieving higher system throughput.
Data compression is a technique used for manipulating data such that a size of storage smaller than the actual size of the data can hold that data. Data compression is used in conjunction with a memory to accommodate more data than the actual size of the memory can hold. For example, 1 Giga Byte (GB) of memory can be made to hold 2 GB of data by suitably compressing the data.
Typically, data is compressed when stored in the memory and uncompressed when an application has to retrieve the data from the memory. Many algorithms for data compression exist and some are suitable for compressing data in memory.